/**
 * Copyright (c) Huawei Technologies Co., Ltd. 1987-2021. All rights reserved.
*/

package com.gitee.fufu669.aspect;

import com.gitee.fufu669.common.CacheKeyCommon;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author wangfupeng on 2017-5-5. 检查在某秒内访问不得超过某次, 格式是formula="秒钟, 次数"
 */
@Target(ElementType.METHOD)
// 注解
@Retention(RetentionPolicy.RUNTIME)
/**
 * TODO
*/
public @interface CheckVisitFrequency {

    /**在3秒钟内访问超过1次抛出异常设置成"3, 1"
    在60秒钟内访问超过5次抛出异常设置成"60, 5"*/
    // 字符串赋值
    String formula() default CacheKeyCommon.CHECKVISITFREQUENCY_LIMIT_VISIT_FORMULA;

    /**被计算的的参数，如果没有设置就计算全部参数生成缓存key
     * 如果设置了参数，就按照设置的顺序计算参数生成缓存key
     * */
    // 切分
    String[] parameterNames() default {};

    /**在打印日志时会出现的提示*/
    String description() default "";

}
